CSCIĀ 0059P. Web Programming with PHP

Units: 3
Formerly known as CSCI 303
Prerequisite: Completion of CSCI 12 or 27 with grade of "C" or better
Advisory: Completion of CSCI 62 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Create dynamic, session-oriented, data-driven web sites using the PHP scripting language. Covers processing fill-out forms, database backends, session management, authentication and searching. (CSU)

CSCI 0059P - Web Programming with PHP

http://catalog.sierracollege.edu/course-outlines/csci-0059p/

Catalog Description DESCRIPTION IS HERE: Formerly known as CSCI 303 Prerequisite: Completion of CSCI 12 or 27 with grade of "C" or better Advisory: Completion of CSCI 62 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Create dynamic, session-oriented, data-driven web sites using the PHP scripting language. Covers processing fill-out forms, database backends, session management, authentication and searching. (CSU) Units 3 Lecture-Discussion 54 Laboratory 18 By Arrangement Contact Hours 72 Outside of Class Hours Course Student Learning Outcomes Explain the basics of MySQL and its application towards a dynamic web page. Apply the basics of PHP and its application with HTML. Design and implement a dynamic data-driven web site using PHP, HTML and MySQL. Course Content Outline I. Introduction to PHP A. HTML Review B. CSS Review C. SQL Overview D. Comparison to similar technologies II. Overview A. PHP tags B. Setting up the web server to use PHP C. WAMP/LAMP III. Basic PHP Programming Techniques A. GET and POST variables B. Outputting strings and numbers C. Utilizing PHP's built-in function library D. Loops E. Conditionals F. User-defined subroutines G. Regular expressions IV. Data Types A. Arrays B. Associative Arrays C. Scalar Variables V. Database access A. Creating tables B. SELECT, INSERT, UPDATE, DELETE C. Joins D. Using PHP functions to query a database VI. PHP Application Design A. Model-View-Control B. Dynamic content with JavaScript C. Cookies and session management D. User authentication E. Ajax web development VII. Frameworks A. Comparison of PHP frameworks B. Installation and basic use of a framework VIII. Security A. SQL injection attacks B. Brute force attacks C. File and database permissions D. Password protection with hashing and encryption E. Input scrubbing Course Objectives Course Objectives Lecture Objectives: 1. Identify the different languages used in a PHP application: PHP, HTML, JavaScript, and CSS. 2. Interpret server error messages and identify the location of the error. 3. Identify components of a WAMP or LAMP server. 4. Construct regular expressions to validate input. 5. Compare and contrast various data security techniques: encryption, hashing, file permissions, and authentication. 6. Analyze the data needs of a customer and construct normalized database tables. Laboratory Objectives: 1. Write PHP programs utilizing fundamental programming concepts: variables, methods, conditionals, and loops. 2. Analyze PHP programs and correct errors (bugs) so the programs run correctly. 3. Write correct SQL (Structured Query Language) statements using the basic SQL commands: CREATE TABLE, DROP TABLE, SELECT, INSERT, UPDATE, and DELETE. 4. Create a database-backed PHP application and demonstrate its correctness. 5. Utilize session management techniques (including session IDs and cookies) in a PHP application. 6. Identify possible SQL injection attack vectors using common probing techniques. Methods of Evaluation Essay Examinations Objective Examinations Problem Solving Examinations Projects Reading Assignments 1. Read the textbook about database table normalization. Identify the criteria of the first, second, and third normal forms and be prepared to discuss in class. 2. Read online reference documentation to learn about regular expression metacharacters. Be ready to answer questions during the lecture. Writing, Problem Solving or Performance 1. There are many web application frameworks available. Write a research paper comparing and contrasting Ruby on Rails, Zope, J2EE, and Django. Include code examples for a basic "Hello World" web-based application. 2. Design an appropriate model for representing a meeting or appointment in a calendar. What data fields would you use? What would be the methods for working with the data? Write a 2-page report about your design in which you address the shortcomings and places where the design needs improvement. Other (Term projects, research papers, portfolios, etc.) Methods of Instruction Laboratory Lecture/Discussion Distance Learning Other materials and-or supplies required of students that contribute to the cost of the course.